------------数据格式转换-----------------
<#assign answer=42/> 
${answer} 
${answer?string} <#-- the same as ${answer} --> 
${answer?string.number} 
${answer?string.currency} 
${answer?string.percent} 
${answer} 

------------日期-----------------
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")} 
${lastUpdated?string("EEE, MMM d, yy")} 
${lastUpdated?string("EEEE, MMMM dd, yyyy, hh:mm:ss a '('zzz')'")} 

------------数值-----------------
<#assign x=2.582/> 
<#assign y=4/> 
#{x; M2} <#-- 输出2.58 --> 
#{y; M2} <#-- 输出4 --> 
#{x; m2} <#-- 输出2.6 --> 
#{y; m2} <#-- 输出4.0 --> 
#{x; m1M2} <#-- 输出2.58 --> 
#{x; m1M2} <#-- 输出4.0 --> 

-----------条件指令------------------
<#if y+1 %2 == 0 >
偶数
<#else>
奇数
</#if>
<#assign score=78 />
<#if score gt 85>
优秀
<#elseif score gt 75>
良好
<#elseif score gt 65>
及格
<#else>
不及格
</#if>
<#assign level="A"/>
<#switch level>
<#case "A">
优
<#break>
<#case "B">
良
<#break>
<#case "C">
差
<#break>
<#default>
不知道
</#switch>
-----------循环指令------------------
<#assign nums=[1,2,3,4,8,7,6,5] />
<#list nums as num>
${num_index+1},${num}<#if num_has_next>;</#if>
</#list>
<#assign nums=10 />
<#list 1..nums as num>
<#if num == 7>
<#break>
</#if>
${num_index+1},${num}<#if num_has_next>;</#if>
</#list>
-----------包含指令------------------
<#include "header.ftl">
${title}
-----------自定义指令------------------
<#macro mydirect1 diy>
这是自定义指令${diy}
<#nested>
</#macro>

<@mydirect1 diy="Hello Direct">
这是调用者传的标签内容
</@mydirect1>

<#macro do_thrice>
  <#nested 1>
  <#nested 2>
  <#nested 3>
</#macro>
<@do_thrice ; x> <#-- user-defined directive uses ";" instead of "as" -->
  ${x} Anything.
</@do_thrice>

-----------空值处理------------------
${user.name}
${user.group!"不属于任何组别"}
${(user.group.name)!"不属于任何组名"}
<#if (user.group.name)??>
<#else>
没有组
</#if>










